package LeetCode.interview;

import util.LogUtils;

/*
 * 
原题

　　Determine whether an integer is a palindrome. Do this without extra space. 

题目大意

　　判断一个数字是否是回访字数，不要使用额外的空间。 

解题思路

　　为了不使用额外的空间，参考了其它的解决，那些解法看起来在isPalindrome方法中没有使用额外参数，但是却使用了方法调用，这个比一个整数消耗的空间更多 ，并没有达到题目的要求，是假的实现，所以本题依然采用一个额外的空间进行实现。 
　　首先，负数不是回文数字，其次对数字进行逆转，123变成321这样，如果变换后的数字相等说明是回文数字。 
 * @Date 2017-09-12 15：44
 */
public class _009_Palindrome_Number {
	public boolean isPalindrome(int x) {
		//负数不是回文
		if (x < 0)	return false;
		
		long temp = x;
		//为防止溢出使用long
		long result = 0;
		 
		while (temp != 0) {
			result = result*10 + temp%10;
			temp = temp/10;
		}
		
		//如果翻转后数字相等，那么就是回文
		if (x == result) 		return true;
		else return false;
	}
	
	public static void main(String[] args) {
		LogUtils.println("结果", new _009_Palindrome_Number().isPalindrome(981));
	}
}
